묻고 답해요
129만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬 무료 강의 (활용편3) - 웹 스크래핑 (5시간)
네이버 항공권 관련 제가 작성한 코드 조심스럽게 공유해드립니다.ㅜ
안녕하세요먼저 좋은 강의 해주시는 나도코딩님께 감사드립니다. 이전에 나름 정성들여 글을 작성했는데, 확인이 안돼서 다시 작성해봅니다. 제가 강의를 보고있는 2023년 1월 19일과 강의날인 2020년 8월과 네이버 항공권 인터페이스가 많이 상이하고, 셀레니움과 파이썬 버전이 달라 저의경우 아래와 같이 코드를 작성했습니다. 다른분들께 도움이 되었으면 좋겠습니다. 현재 저의 환경의 경우 python버전 3.10.7 버전이고 selenium또한 강의때 사용하신것 보다 더 높은 것으로 보입니다. 현재 제 경우와 강의내용과 상이한 부분은 아래와 같습니다. 네이버 항공권 진입시, "지금 바로 혜택 확인하기" 광고 팝업창 발생, 해당부분 get_attribute메소드를 사용해 title을 비교해, 팝업이 있다면 팝업을 삭제하는 XPATH를 확인해 해당 엘리먼트를 클릭하도록 구현browser.find_element_by_class_name과 같이 find_element_by_~~ 메소드 사용불가=> 현재 제가 사용중인 셀레니움 버전이 상위 버전으로 보이는데, 이는 3 line과 같이 import By로 쉽게 수정 가능find_elements_link_text 메소드 사용 불가=> 2020년대비 2023년 현재 네이버 항공권 웹페이지 인터페이스의 변화때문인지 "가는 날" 및 날짜 선택을 위해 해당 메소드 사용시 빈리스트만 반환"가는 날"은 XPATH로 엘리먼트를 얻어와 클릭하도록 구현원하는 날짜의 경우 class이름을 확인해 모든 날짜정보를 갖고와 원하는 날짜정보만 사용하도록 구현 (compute_date 함수 참고 부탁 드립니다.)추가적으로, 이 경우에 1년치 달력정보를 모두 읽어와 속도가 매우 느린데 더 좋은 방법을 알고계신분은 공유 부탁드립니다. ( _ _ )compute_date(dates, 30)[1].click()코드를 이렇게 수정해 오는날을 2월 30일을 선택하려 했으나 3월 30일을 선택해, 코드 오류인줄 알고 디버깅해보니 2월달은 30일이 없었습니다...ㅎ정상동작 중 입니다.저와같이 초반에 고생하시는 분들께 조금이나마 도움이 되었으면 좋겠습니다.감사합니다. import time from selenium import webdriver from selenium.webdriver.common.by import By URL = "https://flight.naver.com/" def compute_date(dates, target) -> list: print("compute entire date information from current month to limit") return [date for date in dates if date.text == str(target)] browser = webdriver.Chrome() # browser.maximize_window() browser.get(URL) time.sleep(1) # remove AD popup find = browser.find_elements(By.CLASS_NAME, "anchor") for f in find: if f.get_attribute("title") == "지금 바로 혜택 확인하기": browser.find_element(By.XPATH, '//*[@id="__next"]/div/div[1]/div[9]/div/div[2]/button[1]').click() print("remove pop up") break # push 가는 날 button also delay 1 sec is necessary, if don't use this, can not read date information. browser.find_element(By.XPATH, '//*[@id="__next"]/div/div[1]/div[4]/div/div/div[2]/div[2]/button[1]').click() time.sleep(1) # read date information and push 25 day dates = browser.find_elements(By.CLASS_NAME, "sc-evZas dDVwEk num".replace(" ", ".")) compute_date(dates, 25)[0].click() # read date information and push 30 day dates = browser.find_elements(By.CLASS_NAME, "sc-evZas dDVwEk num".replace(" ", ".")) compute_date(dates, 30)[0].click() while True: pass
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
한국거래서 상장종목 에러
기존에 있었던 Market(시장)이 데이터에 없어서 예제코드 일부가 커밋이 안되고 있습니다. fdr 라이브러리를 사용해야하는 걸까요? 진행이 안되어 답답합니다.감사합니다.
-
미해결파이썬 무료 강의 (활용편3) - 웹 스크래핑 (5시간)
bs4 활용 2-1 질문합니다.
코드 실행시 정보가 오지 않고 반응이 없습니다!
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
[2/5] plotly express 를 통한 일별 시세 시각화
plotly express 예제 중 질문입니다.1. 우분투 버전(base) root@gd-virtual-machine:~# cat /etc/issueUbuntu 20.04.4 LTS \n \l2. 파이썬 버전(base) root@gd-virtual-machine:~# python --versionPython 3.9.73. 공부하는 부분[2/5] plotly express를 통한 일별 시세 시각화px.line 을 처음에 실행하면 그래프가 나옵니다.그러나, 저장된 파일로 실행하면 그래프가 안 나옵니다.이런 경우도 보셨나요?4. 해당 소스import plotly.express as pximport pandas as pddf = px.data.stocks()dfpx.line(df, x="date", y="GOOG") 처음 실행은 정상적으로 그래프가 나옴저장된 파일로 실행하면 비정상적으로 그래프가 나오지 않음
-
해결됨파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
dataframe 접근속도 관련 문의
유튜브 보다 인프런 강의까지 오게되었는데 듣다 궁금한 부분이 있어서 질문드립니다. %timeit을 해서 확인해보니 1) df["Name"][0] 2) df.loc[0."Name"] 3) df.loc[0]["Name"] - 유튜브에서는 1)과 2)를 비교해주셨고, - 인프런에서는 2)와 3)을 비교해주시면서 2)가 접근속도가 더 빠르다고 하였는데 1)이 가장 빠르다고 나와서 이에 대한 다른 이유?가 있는지 궁금해서 문의드립니다.
-
미해결파이썬 무료 강의 (활용편3) - 웹 스크래핑 (5시간)
lxml 오류
pip install lxml 시행하였는데 아래와 같은 오류가 발생하였습니다. 어떻게 해야하나요?
-
미해결파이썬 무료 강의 (활용편3) - 웹 스크래핑 (5시간)
현재 네이버 항공권 셀레니움
현재 셀레니움을 공부하고 있습니다 너무 감사합니다 질좋은강의 최고입니다. 유료보다 좋은 무료라니... 천사이십니다... 저 지금 네이버 항공권 이미지가 조금 달려졌는데 browser.find_element_by_link_text("가는 날").click()이라고 하니 NoSuchElementException이 발생했습니다 왜이런건지 이해를 못하겠습니다
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
FinanceDataReader - ModuleNotFoundError
input 파일로 실습중입니다. !pip install -U finance-datareader(주석처리 지움)로 FinanceDataReader를 설치후 import FinanceDataReader as fdr fdr.__version__ 를 했는데 다음과 같은 오류가 나옵니다. --------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) <ipython-input-3-e3a60539cbc3> in <module> 1 # FinanceDataReader 를 fdr 별칭으로 불러옵니다. 2 # 라이브러리의 version을 확인하고 싶을 때는 .__version__ 으로 확인합니다. ----> 3 import FinanceDataReader as fdr 4 fdr.__version__ ModuleNotFoundError: No module named 'FinanceDataReader' 실습환경은 macos 11.2.3입니다. pip list 첨부했으며 finance-datareader만 제가 Bold처리 했습니다. (base) imigjuucBookPro:~ ikedo$ pip list Package Version ------------------------------------------------- ------------ anaconda 0.0.1.1 appnope 0.1.2 asgiref 3.3.1 backcall 0.2.0 beautifulsoup4 4.9.3 bokeh 2.2.3 bs4 0.0.1 certifi 2020.12.5 chardet 3.0.4 colorama 0.4.4 commonmark 0.9.1 conda 4.3.16 cycler 0.10.0 DateTime 4.3 decorator 4.4.2 Django 3.1.7 django-ckeditor 6.0.0 django-crispy-forms 1.11.1 django-extensions 3.1.1 django-js-asset 1.2.2 django-markdown 0.8.4 django-markdownx 3.0.1 finance-datareader 0.9.31 gunicorn 20.0.4 httplib2 0.10.3 idna 2.6 inflect 0.2.5 ipython 7.21.0 ipython-genutils 0.2.0 jedi 0.18.0 Jinja2 2.11.2 keyboard 0.13.5 kiwisolver 1.3.1 lxml 4.6.3 Markdown 3.3.4 MarkupSafe 1.1.1 matplotlib 3.3.3 monotonic 1.5 numpy 1.19.4 oauth2client 3.0.0 packaging 20.8 pandas 1.2.4 parso 0.8.1 pexpect 4.8.0 pickleshare 0.7.5 Pillow 8.1.0 pip 21.1.2 plotly 4.14.1 prettytable 2.0.0 prompt-toolkit 3.0.16 protobuf 3.4.0 psycopg2-binary 2.8.6 ptyprocess 0.7.0 pyasn1 0.3.7 pyasn1-modules 0.1.5 pycosat 0.6.3 Pygments 2.8.0 pykrx 0.1.42 pyobjc 7.1 pyobjc-core 7.1 pyobjc-framework-Accessibility 7.1 pyobjc-framework-Accounts 7.1 pyobjc-framework-AddressBook 7.1 pyobjc-framework-AdServices 7.1 pyobjc-framework-AdSupport 7.1 pyobjc-framework-AppleScriptKit 7.1 pyobjc-framework-AppleScriptObjC 7.1 pyobjc-framework-ApplicationServices 7.1 pyobjc-framework-AppTrackingTransparency 7.1 pyobjc-framework-AuthenticationServices 7.1 pyobjc-framework-AutomaticAssessmentConfiguration 7.1 pyobjc-framework-Automator 7.1 pyobjc-framework-AVFoundation 7.1 pyobjc-framework-AVKit 7.1 pyobjc-framework-BusinessChat 7.1 pyobjc-framework-CalendarStore 7.1 pyobjc-framework-CallKit 7.1 pyobjc-framework-CFNetwork 7.1 pyobjc-framework-ClassKit 7.1 pyobjc-framework-CloudKit 7.1 pyobjc-framework-Cocoa 7.1 pyobjc-framework-Collaboration 7.1 pyobjc-framework-ColorSync 7.1 pyobjc-framework-Contacts 7.1 pyobjc-framework-ContactsUI 7.1 pyobjc-framework-CoreAudio 7.1 pyobjc-framework-CoreAudioKit 7.1 pyobjc-framework-CoreBluetooth 7.1 pyobjc-framework-CoreData 7.1 pyobjc-framework-CoreHaptics 7.1 pyobjc-framework-CoreLocation 7.1 pyobjc-framework-CoreMedia 7.1 pyobjc-framework-CoreMediaIO 7.1 pyobjc-framework-CoreMIDI 7.1 pyobjc-framework-CoreML 7.1 pyobjc-framework-CoreMotion 7.1 pyobjc-framework-CoreServices 7.1 pyobjc-framework-CoreSpotlight 7.1 pyobjc-framework-CoreText 7.1 pyobjc-framework-CoreWLAN 7.1 pyobjc-framework-CryptoTokenKit 7.1 pyobjc-framework-DeviceCheck 7.1 pyobjc-framework-DictionaryServices 7.1 pyobjc-framework-DiscRecording 7.1 pyobjc-framework-DiscRecordingUI 7.1 pyobjc-framework-DiskArbitration 7.1 pyobjc-framework-DVDPlayback 7.1 pyobjc-framework-EventKit 7.1 pyobjc-framework-ExceptionHandling 7.1 pyobjc-framework-ExecutionPolicy 7.1 pyobjc-framework-ExternalAccessory 7.1 pyobjc-framework-FileProvider 7.1 pyobjc-framework-FileProviderUI 7.1 pyobjc-framework-FinderSync 7.1 pyobjc-framework-FSEvents 7.1 pyobjc-framework-GameCenter 7.1 pyobjc-framework-GameController 7.1 pyobjc-framework-GameKit 7.1 pyobjc-framework-GameplayKit 7.1 pyobjc-framework-ImageCaptureCore 7.1 pyobjc-framework-IMServicePlugIn 7.1 pyobjc-framework-InputMethodKit 7.1 pyobjc-framework-InstallerPlugins 7.1 pyobjc-framework-InstantMessage 7.1 pyobjc-framework-Intents 7.1 pyobjc-framework-IOSurface 7.1 pyobjc-framework-iTunesLibrary 7.1 pyobjc-framework-KernelManagement 7.1 pyobjc-framework-LatentSemanticMapping 7.1 pyobjc-framework-LaunchServices 7.1 pyobjc-framework-libdispatch 7.1 pyobjc-framework-LinkPresentation 7.1 pyobjc-framework-LocalAuthentication 7.1 pyobjc-framework-MapKit 7.1 pyobjc-framework-MediaAccessibility 7.1 pyobjc-framework-MediaLibrary 7.1 pyobjc-framework-MediaPlayer 7.1 pyobjc-framework-MediaToolbox 7.1 pyobjc-framework-Metal 7.1 pyobjc-framework-MetalKit 7.1 pyobjc-framework-MetalPerformanceShaders 7.1 pyobjc-framework-MetalPerformanceShadersGraph 7.1 pyobjc-framework-MLCompute 7.1 pyobjc-framework-ModelIO 7.1 pyobjc-framework-MultipeerConnectivity 7.1 pyobjc-framework-NaturalLanguage 7.1 pyobjc-framework-NetFS 7.1 pyobjc-framework-Network 7.1 pyobjc-framework-NetworkExtension 7.1 pyobjc-framework-NotificationCenter 7.1 pyobjc-framework-OpenDirectory 7.1 pyobjc-framework-OSAKit 7.1 pyobjc-framework-OSLog 7.1 pyobjc-framework-PassKit 7.1 pyobjc-framework-PencilKit 7.1 pyobjc-framework-Photos 7.1 pyobjc-framework-PhotosUI 7.1 pyobjc-framework-PreferencePanes 7.1 pyobjc-framework-PushKit 7.1 pyobjc-framework-Quartz 7.1 pyobjc-framework-QuickLookThumbnailing 7.1 pyobjc-framework-ReplayKit 7.1 pyobjc-framework-SafariServices 7.1 pyobjc-framework-SceneKit 7.1 pyobjc-framework-ScreenSaver 7.1 pyobjc-framework-ScreenTime 7.1 pyobjc-framework-ScriptingBridge 7.1 pyobjc-framework-SearchKit 7.1 pyobjc-framework-Security 7.1 pyobjc-framework-SecurityFoundation 7.1 pyobjc-framework-SecurityInterface 7.1 pyobjc-framework-ServiceManagement 7.1 pyobjc-framework-Social 7.1 pyobjc-framework-SoundAnalysis 7.1 pyobjc-framework-Speech 7.1 pyobjc-framework-SpriteKit 7.1 pyobjc-framework-StoreKit 7.1 pyobjc-framework-SyncServices 7.1 pyobjc-framework-SystemConfiguration 7.1 pyobjc-framework-SystemExtensions 7.1 pyobjc-framework-UniformTypeIdentifiers 7.1 pyobjc-framework-UserNotifications 7.1 pyobjc-framework-UserNotificationsUI 7.1 pyobjc-framework-VideoSubscriberAccount 7.1 pyobjc-framework-VideoToolbox 7.1 pyobjc-framework-Virtualization 7.1 pyobjc-framework-Vision 7.1 pyobjc-framework-WebKit 7.1 pyparsing 2.4.7 python-dateutil 2.8.1 pytz 2021.1 PyYAML 5.3.1 requests 2.25.0 requests-file 1.5.1 retrying 1.3.3 rich 9.11.0 rsa 3.4.2 ruamel.yaml 0.16.12 scipy 1.5.4 seaborn 0.11.0 setuptools 49.2.1 simplejson 3.17.2 six 1.11.0 soupsieve 2.2 sqlparse 0.4.1 tenacity 4.4.0 tinytag 0.18.0 tornado 6.1 tqdm 4.19.2 traitlets 5.0.5 typing-extensions 3.7.4.3 Unidecode 1.0.22 urllib3 1.22 view 0.1 wcwidth 0.2.5 Werkzeug 0.12.2 xlrd 2.0.1 youtube-dl 2017.10.15.1 zope.interface 5.2.0
-
해결됨파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
df["ListingYear"] >> df["ListingDate] 로 변경
강의에서는 ListingYear 로 된 부분이 있는데, 이 부분을 ListingDate로 변경해야 출력이 됩니다. (>> KRX의 index가 이름이 변경되서 그런 것 같네요)
-
해결됨파이썬 무료 강의 (활용편3) - 웹 스크래핑 (5시간)
res = requests.get(url)에서 오류가 나요
이렇게 뜨는데 어떡해야 하나요? import 문제인거 같은데